package br.com.locadora.midia;

import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;

import br.com.locadora.filme.Filme;

@Entity
@SequenceGenerator(name = "midia_seq", sequenceName = "midia_seq", allocationSize = 1, initialValue = 1)
public class Midia implements Serializable {

	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(generator = "midia_seq")
	private Integer midCodigo;

	private String midInutilizada;

	@ManyToOne
	@JoinColumn(name = "midiaFilme")
	private Filme midiaFilme;

	public Integer getMidCodigo() {
		return midCodigo;
	}

	public void setMidCodigo(Integer midCodigo) {
		this.midCodigo = midCodigo;
	}

	public String getMidInutilizada() {
		return midInutilizada;
	}

	public void setMidInutilizada(String midInutilizada) {
		this.midInutilizada = midInutilizada;
	}

	public Filme getMidiaFilme() {
		return midiaFilme;
	}

	public void setMidiaFilme(Filme midiaFilme) {
		this.midiaFilme = midiaFilme;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((midCodigo == null) ? 0 : midCodigo.hashCode());
		result = prime * result
				+ ((midInutilizada == null) ? 0 : midInutilizada.hashCode());
		result = prime * result
				+ ((midiaFilme == null) ? 0 : midiaFilme.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Midia other = (Midia) obj;
		if (midCodigo == null) {
			if (other.midCodigo != null)
				return false;
		} else if (!midCodigo.equals(other.midCodigo))
			return false;
		if (midInutilizada == null) {
			if (other.midInutilizada != null)
				return false;
		} else if (!midInutilizada.equals(other.midInutilizada))
			return false;
		if (midiaFilme == null) {
			if (other.midiaFilme != null)
				return false;
		} else if (!midiaFilme.equals(other.midiaFilme))
			return false;
		return true;
	}

}
